#include <iostream>
using namespace std;

class Solution {
public:
    string reverseWords(string s) {
        int count=0;//计数单词长度
        string::iterator it1=s.begin(),it2=s.begin();
        while(it2!=s.end())
        {
            if((*it2)==' ')
            {
                reverse(it1,it2);//当it2到空格时，it1还早字母首个位置
                it1+=count+1;//it1移动到下一个字母首部，空格算一个位置
                it2=it1;//把it2和it1对齐，继续遍历
                count=0;//重新计数新单词个数
            }
            else//如果没到空格，继续往后遍历，且计数单词个数
            {
                ++it2;
                ++count;
            }
        }
        reverse(it1,it2);//遍历到end()时跳出循环，少反转一次
        return s;
    }
};